#pragma once

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text;
using namespace RobotCollisionDetection;

namespace RobotCollisionDetection
{
	/**
	 * @brief Klasa reprezentujaca polaczenie UDP miedzy aplikacja na PC a ukladem elektronicznym.
	 */
	ref class UdpConnection : public UdpClient
	{
	
	public:
		
		/**
		 * Konstruktor tworzacy nowy obiekt UdpClient i nawiazujacy polaczenie z danym hostem i portem.
		 * @param host - adres IP hosta w postaci numerycznej, np. "192.168.0.222"
		 * @param port - port hosta, np. 10022
		 */
		UdpConnection(String ^host, int port);
		
		/**
		 * Wyslanie wiadomosci do polaczonego hosta.
		 * @param message - wiadomosc
		 * @return true - udalo sie wyslac, false - blad przy wysylaniu
		 */
		bool SendMessage(String ^message);
		
	private:
		/// liczba milisekund z czasu wyslania ostatniego pakietu
		int timing;
	};
}